package com.saya.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;
import com.saya.model.Item;
import com.saya.model.Product;
import com.saya.response.CreateItemRs;
import com.saya.response.GetItemRs;

public class ItemServlet extends HttpServlet{
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
		    throws IOException
		  {
		    resp.setContentType("application/json;charset=utf8");
		    Boolean validate = Boolean.valueOf(true);
		    String des = "Thêm mới item thành công";
		    Item item = new Item();
		    String itemid = "";
		    try {
		      itemid = req.getParameter("ItemId");
		    } catch (Exception ex) {
		      item.setId("");
		    }
		    item.setId(itemid);

		    String name = req.getParameter("Name");
		    if ((name == null) || ("".equals(name))) {
		      des = "Tên không được để trống";
		      validate = Boolean.valueOf(false);
		    } else {
		      item.setName(name);
		    }
		    String product = req.getParameter("Product");

		    if ((product == null) || ("".equals(product))) {
		      des = "Sản phẩm không được để trống";
		      validate = Boolean.valueOf(false);
		    } else {
		      Product pro = Product.getProduct(product);
		      if (pro != null) {
		        item.setProduct(product);
		      } else {
		        des = "Không tìm được sản phẩm tương ứng " + product;
		        validate = Boolean.valueOf(false);
		      }
		    }

		    if (validate.booleanValue()) {
		      item.setPrice(req.getParameter("Price"));
		      item.setType(req.getParameter("Type"));
		      item.setIntroduction(req.getParameter("Introduction"));
		      item.setUsage(req.getParameter("Usage"));
		      item.setNote(req.getParameter("Note"));
		      itemid = Item.createorUpdateItem(item);
		      if ("".equals(itemid)) {
		        validate = Boolean.valueOf(false);
		        des = "Có lỗi khi thêm mới item";
		      }
		    }

		    CreateItemRs rs = new CreateItemRs();
		    if (validate.booleanValue())
		      rs.setCode("0");
		    else {
		      rs.setCode("1");
		    }
		    rs.setMessage(des);
		    rs.setId(itemid);

		    Gson gson = new Gson();
		    resp.getWriter().println(gson.toJson(rs));
		  }

		  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
		  {
		    resp.setContentType("application/json;charset=utf8");
		    Boolean validate = Boolean.valueOf(true);
		    String des = "Lấy danh sách item thành công";
		    String product = req.getParameter("Product");
		    List<Item> lstItem = null;
		    if (product != null) { 
		      int limit;
		      int offset;
		      try { 
		    	limit = Integer.parseInt(req.getParameter("Limit"));
		        offset = Integer.parseInt(req.getParameter("Offset"));
		      }
		      catch (Exception ex)
		      {
		        
		        limit = offset = 0;
		      }
		      try {
		        lstItem = Item.getItembyProduct(product, limit, offset);
		      } catch (Exception ex) {
		        validate = Boolean.valueOf(false);
		        des = "Có lỗi khi lấy sản phẩm";
		      }
		    } else {
		      validate = Boolean.valueOf(false);
		      des = "Cần truyền sản phẩm";
		    }

		    GetItemRs rs = new GetItemRs();
		    if (validate.booleanValue())
		      rs.setCode("0");
		    else {
		      rs.setCode("1");
		    }
		    rs.setMessage(des);
		    if (lstItem != null) {
		      rs.setItems(lstItem);
		    }

		    Gson gson = new Gson();
		    resp.getWriter().println(gson.toJson(rs));
		  }
}
